#pragma once

EXTERN_C HANDLE gHandle;

EXTERN_C
ULONG_PTR  GetUserGetForegrounWindow();

EXTERN_C
ULONG_PTR  GetUserFindWindowEx();


EXTERN_C
ULONG_PTR  GetNtUserQueryWindow();


EXTERN_C
ULONG_PTR  GetNtUserWindowFromPoint();

EXTERN_C
ULONG_PTR  GetNtUserBuildHwndList();






//hook function
EXTERN_C
VOID initHook();
EXTERN_C
PVOID MyNtUserGetForegroundWindow();
EXTERN_C
__int64 __fastcall MyNtUserQueryWindow(__int64 windowHandle, int isQueryThread);
EXTERN_C
PVOID __fastcall MyNtUserWindowFromPoint(PVOID point);
EXTERN_C
PVOID  __fastcall MyNtUserFindWindowEx(PVOID desktop1, PVOID a2, PUNICODE_STRING a3, PUNICODE_STRING a4, ULONG64 u1);
EXTERN_C
NTSTATUS __fastcall MyNtUserBuildHwndList(
	__int64 parentHwnd,
	__int64 a2,
	int a3,
	int a4,
	int a5,
	unsigned int a6,
	volatile void* Address,
	unsigned int* number);
